package com.fdb.efp.nls.service.facade;

import com.fdb.efp.nls.service.vo.ColltTaskInfoVO;

import java.util.List;

/**
 * Service Interface：催收任务信息服务 
 * @author ligm
 * @date 2019-08-27 
 */
public interface ColltTaskInfoService {
    
	/**
	 * 新增数据 
     * @param inColltTaskInfoVo
	 * @return 
	 */
	public int insertColltTaskInfo(ColltTaskInfoVO inColltTaskInfoVo);

    /**
	 * 根据主键删除信息 
     * @param colltTaskInfoVo
	 * @return 
	 */
	public int deleteByPk(ColltTaskInfoVO colltTaskInfoVo);

    /**
	 * 根据主键更新信息 
     * @param colltTaskInfoVo
	 * @return 
	 */  
	public int updateByPk(ColltTaskInfoVO colltTaskInfoVo);

    /**
	 * 根据主键查询详情 
     * @param colltTaskInfoVo
	 * @return 
	 */
	public ColltTaskInfoVO queryByPk(ColltTaskInfoVO colltTaskInfoVo);

	public List<ColltTaskInfoVO> queryAllOwner(ColltTaskInfoVO colltTaskInfoVo);
	
	public List<ColltTaskInfoVO> queryAllCurrOrg(ColltTaskInfoVO colltTaskInfoVo);
	
	public List<ColltTaskInfoVO> queryAllCurrDownOrg(ColltTaskInfoVO colltTaskInfoVo);

	public List<ColltTaskInfoVO> queryAllCurrOwnerPrd(ColltTaskInfoVO colltTaskInfoVo);

	public List<ColltTaskInfoVO> queryExAllOwner(ColltTaskInfoVO colltTaskInfoVo);

	public List<ColltTaskInfoVO> queryExAllCurrOrg(ColltTaskInfoVO colltTaskInfoVo);

	public List<ColltTaskInfoVO> queryExAllCurrDownOrg(ColltTaskInfoVO colltTaskInfoVo);

	public List<ColltTaskInfoVO> queryExAllCurrOwnerPrd(ColltTaskInfoVO colltTaskInfoVo);

    public List<ColltTaskInfoVO> queryAllByCondition(ColltTaskInfoVO colltTaskInfoVo);

    public List<ColltTaskInfoVO> queryByConditionPage(ColltTaskInfoVO colltTaskInfoVo);

	/**
	 * 根据 催收方式=“专项催收” 和 催收员名称为空 和 是否已分配为"未分配"  查询全部数据
	 * @author xiezw
	 * @params  * @param null
	 * @return
	 * @date 2019/8/29 9:25
	 * @version 0.1
	 */
	public List<ColltTaskInfoVO> queryByColltWayByPage(ColltTaskInfoVO colltTaskInfoVo);

	/**
	 * 根据 催收方式=“电话催收” 和 催收员名称为空 和 是否已分配为"未分配" 查询全部数据
	 * @author dengzc
	 * @return
	 * @date 2019/8/30 9:46
	 * @version 0.1
	 */
	public List<ColltTaskInfoVO> queryByCallWayByPage(ColltTaskInfoVO colltTaskInfoVo);

	/**
	 * 根据催收方式、是否已分配，获取分案催收任务数据
	 * @author qiuyf
	 * @return
	 * @date 2019/9/4 9:46
	 * @version 0.1
	 */
	public List<ColltTaskInfoVO> getDistrCaseColltTasks(ColltTaskInfoVO colltTaskInfoVo);

	/**
	 * 任务状态为“"正常"，"延案"，分页获取延案催收任务数据、导入催收结果数据 POP框
	 * @author qiuyf
	 * @return
	 * @date 2019/9/12 10:25
	 * @version 0.1
	 */
	public List<ColltTaskInfoVO> getOutsPopColltTasks(ColltTaskInfoVO colltTaskInfoVo);

	public int batchUpdateVO(List<ColltTaskInfoVO> colltTaskInfoVOList);

	public List<ColltTaskInfoVO> queryByTaskNo(List<String> taskNo);

	/**
	 * 催收任务流程审批通过后更新方法
	 * @param colltTaskInfo
	 * @return
	 */
	public int updateFlowInfo(ColltTaskInfoVO colltTaskInfo);

	public int batchUpdRebackVO(List<ColltTaskInfoVO> colltTaskInfoVOList);

	/**
	 * 查询逾期超过180天的数据
	 * @author wanglh
	 * @return
	 * @date 2019/10/14
	 * @version 0.1
	 */
	public List<ColltTaskInfoVO> queryInfosOverdue(ColltTaskInfoVO vo);

	public List<ColltTaskInfoVO> queryExInfosOverdue(ColltTaskInfoVO vo);

    public List<ColltTaskInfoVO> getRepamentCase(ColltTaskInfoVO colltTaskInfoVO);

	/**
	 * 外催分案审批拒绝，更新催收任务信息
	 * @param colltTaskInfo
	 * @return
	 */
	public int updateRebackVO(ColltTaskInfoVO colltTaskInfo);

    public ColltTaskInfoVO queryOverLmt(ColltTaskInfoVO colltTaskInfoVO);

	public List<ColltTaskInfoVO> queryAllByCoop(String cooprOrgNo);

	/**
	 * 催收任务撤回
	 * @param colltTaskInfoVO
	 * @return
	 */
	public int rebackVOToOrign(ColltTaskInfoVO colltTaskInfoVO);
	
	public List<ColltTaskInfoVO> queryColltTaskInfoProps(ColltTaskInfoVO vo);


	//根据催收任务编号查询催收任务信息
	ColltTaskInfoVO getColltTaskInfoVOByTaskNo(ColltTaskInfoVO vo);
}


